/**
 * Classe responsavel pela manipulação dos documentos no banco de dados SQlServer
 */
package br.inf.acesso.bancodedados.firebird;

import br.inf.acesso.bancodedados.ConexaoFirebird;
import br.inf.acesso.regrasdenegocios.geral.Documento;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 * @author Douglas
 * @since 28/04/2013
 */
public class BDDocumentoTrib {

    private String dataInicial;
    private String dataFinal;
    private String empresa;
    private ConexaoFirebird conexao;
    private ResultSet rs;

    public BDDocumentoTrib(String dataInicial, String dataFinal, String empresa) {
        conexao = new ConexaoFirebird();
        setDataInicial(dataInicial);
        setDataFinal(dataFinal);
        this.empresa = empresa;
    }

    public ArrayList<Documento> docNFEntradas() throws SQLException {
        Documento doc;
        ArrayList<Documento> listaDocEntradas = new ArrayList<Documento>();
        ResultSet rs = conexao.select("select * from LCTOFISENT WHERE CODIGOEMPRESA = " + empresa + "and"
                + " DATAEMISSAO BETWEEN '" + dataInicial + "' AND '" + dataFinal + "'");
        while (rs.next()) {
            doc = new Documento(rs.getInt("NUMERONF"), rs.getDouble("VALORCONTABIL"), "NFE");
            listaDocEntradas.add(doc);
        }
        return listaDocEntradas;
    }

    public ArrayList<Documento> docNfSaidas() throws SQLException {
        Documento doc;
        ArrayList<Documento> listaDocSaidas = new ArrayList<Documento>();
        rs = conexao.select("select * from LCTOFISSAI WHERE CODIGOEMPRESA = " + empresa + "and"
                + " DATALCTOFIS BETWEEN '" + dataInicial + "' AND '" + dataFinal + "'");
        while (rs.next()) {
            doc = new Documento(rs.getInt("NUMERONF"), rs.getDouble("VALORCONTABIL"), "NFS");
            listaDocSaidas.add(doc);
        }
        return listaDocSaidas;
    }

    private void setDataInicial(String dataInicial) {
        dataInicial = dataInicial.substring(3, 5) + "/" + dataInicial.substring(0, 2) + "/" + dataInicial.substring(6, 10);
        this.dataInicial = dataInicial;
    }

    private void setDataFinal(String dataFinal) {
        dataFinal = dataFinal.substring(3, 5) + "/" + dataFinal.substring(0, 2) + "/" + dataFinal.substring(6, 10);
        this.dataFinal = dataFinal;
    }

    public void desconectar() {
        conexao.desconectar();
    }
}
